package com.wh.wisdomsite.xbox.pr.service;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.wh.wisdomsite.xbox.pr.entity.Project;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 工程项目Service接口
 * @package com.wh.wisdomsite.xbox.pr.service
 * @author 蔡道行
 * @version V1.0
 * @date 17:16 2018/8/2
 * @Copyright 公司版权所有
 * @Company 贵州万华科技有限公司Copyright (c) 2014
 */
public interface IProjectService extends IService<Project> {

    /**
     * 获取完整项目信息
     * @param id
     * @return
     */
    Map<String,Object> getMapById(Serializable id);


    /**
     * 获取完整信息的project分页列表
     * @param var1
     * @param var2
     * @return
     */
    Page<Map<String,Object>> getMapsPage(Page var1, Wrapper<Project> var2);

    /**
     * 根据公司ID查询项目集合
     * @param companyId
     * @return
     */
    List<Project> selectProjectListByCompanyId(Integer companyId);


    /**
     * 根据部门ID查询项目集合
     * @param officeId
     * @return
     */
    List<Project> selectProjectListByOfficeId(Integer officeId);

    /**
     * 根据公司、部门编码获取工程id集合
     * @param compCode
     * @return
     */
    List<String> selectByCompCode(String compCode, String officeCode);

    /**
     * 根据公司、部门编码获取工程map
     * @param var1
     * @param var2
     * @param compCode
     * @param officeCode
     * @return
     */
    Page<Map<String,Object>> selectPageByCode(Page var1, Wrapper<Project> var2,String compCode, String officeCode);



    /**
     * 配置端获取完整项目信息
     * @param id
     * @return
     */
    Map<String,Object> getCcProjectMapById(Serializable id);


    /**
     * 配置端获取完整信息的project分页列表
     * @param var1
     * @param var2
     * @return
     */
    Page<Map<String,Object>> getCcProjectMapsPage(Page var1, Wrapper<Project> var2);

    /**
     * 根据项目ID获取项目
     * @param prId
     * @return
     */
    Project getById(String prId);
}
